iT邦幫忙

2026 iThome 鐵人賽

DAY 28
0
Build on Google AI

《30天打造喵語日誌:Gemini API × Vibe Coding 實戰》系列 第 28

Day 28:【專案工程化】打造高質感的開源門面:系統架構圖繪製與 GitHub README 撰寫

  • 分享至 

  • xImage
  •  

在完成了功能實作、雲端資料庫串接與真機使用者的跨平台測試調優後,《喵語日誌 PurrDay》的功能面已經相當完備。然而,對於一個成熟的軟體專案來說,程式碼寫得好只是基礎,如何將專案結構清晰地傳達給其他開發者與面試官,更是工程素養的重要體現。

今天我們將專注於打造高質感的開源專案門面:繪製系統全景架構圖,並為 GitHub 儲存庫撰寫兼具美觀與工程規範的 README.md.env.example

視覺化系統架構:從前端互動到雲端 AI 的完整資料流

一份專業的架構圖能夠在幾秒鐘內向讀者交代產品背後的技術選型與資料流向。我繪製了《喵語日誌》的四層系統架構:
https://ithelp.ithome.com.tw/upload/images/20260829/20178708PvD52oKDmz.png

四大分層職責剖析

  • DevOps & CI/CD: 透過 Git 進行版本控制,當推送至 GitHub main 分支時,自動觸發 Vercel Edge Network 進行 Production Build 與全球邊緣節點託管。

  • Client Tier(前端互動層): 採用 React 18、TypeScript 與 Tailwind CSS。包含三大模組:ChatContainer(對話面板)、MoodStats(情緒走勢/日曆)與 AchievementModal(成就收集館),並透過 imageUtils 進行前端 Canvas 圖片無損壓縮。

  • AI Engine Tier(多模態推論層): 串接 Google Gemini API(gemini-3.1-flash-lite),同時接收壓縮後的 Base64 影像與文字 Prompt,執行圖像視覺辨識、情緒評分與貓咪口吻擬人回應。

  • Cloud Database Tier(雲端持久化層): 利用 Firebase Auth 提供無感匿名登入,並透過 Cloud Firestore 儲存使用者的情緒日記集合(diaries)與成就解鎖進度(achievements)。

打造開源專案門面:GitHub README.md

專案根目錄的 README.md 是開源社群與招募團隊的第一接觸點。我清除了 Vite 預設的說明檔,重構出包含徽章、功能亮點、架構圖與快速開始指引的專業文件。

README 核心區塊設計

  • Shields.io Badges(技術標籤): 直觀標註 React、TypeScript、Tailwind CSS、Google Gemini、Firebase 與 Vercel 的技術棧。

  • Key Features(產品亮點): 從使用者角度歸納「貓咪擬人對話」、「情緒日曆分析」、「遊戲化成就系統」與「極致行動端體驗」四大模組。

  • Architecture(原生 Mermaid 支援): GitHub 原生支援 Mermaid 代碼區塊,讓讀者在瀏覽儲存庫時能直接查看動態渲染的架構圖。

  • Quick Start(快速上手指引): 提供標準的 git clonenpm install、環境變數配置與本地啟動指令,降低協作與 Code Review 的門檻。

https://ithelp.ithome.com.tw/upload/images/20260829/20178708hAOUDhDfIZ.png

工程規範:安全且友善的環境變數管理

在開源專案中,金鑰安全是不可妥協的底線。我在 .gitignore 中明確忽略了包含真實密鑰的 .env.env.local,並同步建立了 .env.example 範本檔:

# Google Gemini API
VITE_GEMINI_API_KEY=your_gemini_api_key_here

# Firebase Configuration
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_id

這項做法既能防止敏感資訊外洩,又能讓剛下載專案的開發者快速複製並填入自己的 API Key。

結語

經過今天的工程規範化整理,《喵語日誌》從一個個人練習專案,正式蛻變成具備完整開源規範、清晰架構與專業文件的可交付產品。

明天我們將迎來全系列的收官總結——Day 29【履歷加分】從 0 到 1 打造 AI 全端作品:STAR 原則與專案量化總結!我將帶大家把 30 天的開發歷程提煉為履歷上的亮點項目,明天見,喵~ 🐾


上一篇
Day 27:跨平台真實使用者測試反饋與行動端(RWD)細節調優
下一篇
Day 29:【履歷加分】從 0 到 1 打造 AI 全端作品:STAR 原則與專案量化總結
系列文
《30天打造喵語日誌:Gemini API × Vibe Coding 實戰》30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言